// @ts-ignore
/* eslint-disable */
import { useEffect, useState } from "react";
import { history, Outlet } from "umi";
import TokenManager from "@/token";

export default function AuthWrapper() {
    const [isAuthenticated, setIsAuthenticated] = useState<boolean | null>(
        null,
    );

    useEffect(() => {
        const checkAuth = async () => {
            const token = TokenManager.getAccessToken();

            if (!token) {
                history.replace("/login");
                setIsAuthenticated(false);
                return;
            }

            // 如果需要异步验证token有效性
            // try {
            //   const isValid = await checkTokenValid(token)
            //   if (!isValid) {
            //     TokenManager.removeToken()
            //     history.replace('/login')
            //     setIsAuthenticated(false)
            //     return
            //   }
            //   setIsAuthenticated(true)
            // } catch (error) {
            //   history.replace('/login')
            //   setIsAuthenticated(false)
            // }

            setIsAuthenticated(true);
        };

        checkAuth();
    }, []);

    if (isAuthenticated === null) {
        return null; // 或者返回加载状态
    }

    if (!isAuthenticated) {
        return null; // 已触发跳转，这里不需要渲染内容
    }

    return <Outlet />;
}
